// Package sdk 提供简单的协议转换SDK
package sdk

import (
	"inkjet168x-sdk-go/sdk/protocol/text"
)

// SimpleSDK 简单的协议转换SDK
type SimpleSDK struct{}

// NewSimpleSDK 创建新的简单SDK实例
func NewSimpleSDK() *SimpleSDK {
	return &SimpleSDK{}
}

// CreateTextProtocol 创建文本协议并返回二进制数组
// 参数：
//   - content: 文本内容
//   - x, y: 位置坐标
//   - fontSize: 字号 (12-1000)
//   - fontWidth: 字宽 (12-1000)
// 返回：协议的二进制数组
func (s *SimpleSDK) CreateTextProtocol(content string, x, y, fontSize, fontWidth uint32) ([]byte, error) {
	// 创建文本协议构建器
	builder := text.NewBuilder()
	
	// 构建协议
	protocol, err := builder.
		SetText(content).
		SetPosition(x, y).
		SetFontSize(fontSize).
		SetFontWidth(fontWidth).
		Build()
	if err != nil {
		return nil, err
	}
	
	// 转换为二进制数组
	return protocol.Marshal()
}

// CreateSimpleTextProtocol 创建简单文本协议（使用默认参数）
// 参数：
//   - content: 文本内容
// 返回：协议的二进制数组
func (s *SimpleSDK) CreateSimpleTextProtocol(content string) ([]byte, error) {
	return s.CreateTextProtocol(content, 100, 100, 24, 24)
}

// CreateTextProtocolWithPosition 创建带位置的文本协议（使用默认字体参数）
// 参数：
//   - content: 文本内容
//   - x, y: 位置坐标
// 返回：协议的二进制数组
func (s *SimpleSDK) CreateTextProtocolWithPosition(content string, x, y uint32) ([]byte, error) {
	return s.CreateTextProtocol(content, x, y, 24, 24)
}